package leetcode;

import java.util.HashMap;
import java.util.Map;

public class l0205_同构字符串 {

    public boolean isIsomorphic(String s, String t) {
        //1 前置校验
        if (s == null || t == null || s.length() != t.length()) {
            return false;
        }
        //2 处理业务逻辑
        byte[] sBytes = s.getBytes();
        byte[] tBytes = t.getBytes();
        Map<Byte, Byte> sdataMap = new HashMap<>();
        Map<Byte, Byte> tdataMap = new HashMap<>();

        for (int i = 0; i < sBytes.length; i++) {
            Byte svalue = sdataMap.get(sBytes[i]);
            if (svalue == null) {
                sdataMap.put(sBytes[i], tBytes[i]);
                continue;
            }
            if (svalue != tBytes[i]) {
                return false;
            }
        }

        for (int i = 0; i < sBytes.length; i++) {
            Byte tvalue = tdataMap.get(tBytes[i]);
            if (tvalue == null) {
                tdataMap.put(tBytes[i], sBytes[i]);
                continue;
            }
            if (tvalue != sBytes[i]) {
                return false;
            }
        }
        return true;
    }
}
